//#define  _CRT_SECURE_NO_WARNINGS
//#include <vector>
//#include <iostream>
//using namespace std;
//vector<vector<char>> board{	
//	{ 'O','X','X','X','X','X','X','X'},
//	{ 'O','O','O','O','O','X','X','X' },
//	{ 'X','O','X','X','O','O','O','X' },
//	{ 'X','O','X','X','O','X','X','O' },
//	{ 'X','O','X','X','X','X','X','X' },
//	{ 'X','O','X','X','O','O','O','X' },
//	{ 'X','O','O','O','O','X','O','O' },
//	{ 'X','X','X','X','O','O','O','O' }
//};
//vector<vector<char>> ret;
//vector<vector<char>> path(board.begin(), board.end());
//vector<vector<bool>> vis(8,vector<bool>(8));
//int dx[4] = { 0, 0, 1, -1 };
//int dy[4] = { 1, -1, 0, 0 };
//int tmp = 0, cur = INT_MAX;
//void dfs(int i, int j)
//{
//	for (int k = 0; k < 4; k++)
//	{
//		int x = i + dx[k], y = j + dy[k];
//		if (x >= 0 && x < 8 && y >= 0 && y < 8 && !vis[x][y] && board[x][y] == 'O')
//		{
//			path[x][y] = ' ';
//			vis[x][y] = true;
//			tmp++;
//			if (x == 7 && y == 7 && tmp < cur)
//			{
//				ret = path;
//				cur = tmp;
//			}
//			dfs(x, y);
//			path[x][y] = board[x][y];
//			vis[x][y] = false;
//			tmp--;
//		}
//	}
//}
//int main()
//{
//	vis[0][0] = true;
//	path[0][0] = ' ';
//	dfs(0, 0);
//
//	for (int i = 0; i < ret.size(); i++)
//	{
//		for (int j = 0; j < ret.size(); j++)
//		{
//			cout << ret[i][j];
//		}
//		cout << endl;
//	}
//
//}